package teste;

import java.rmi.RemoteException;
import java.text.SimpleDateFormat;

import remoto.Servidor;
import converter.CPFConverter;
import model.Hospedagem;
import model.Hospede;
import model.Hotel;
import dao.DAOHospedagem;
import dao.DAOHospede;
import dao.DAOHotel;
import facade.FachadaServicos;

public class TestePersistencia {

	public static void main(String[] args) {
		DAOHotel dao = new DAOHotel();
		DAOHospede dao2 = new DAOHospede();
		DAOHospedagem dao3 = new DAOHospedagem();
		
//		Hotel h1 = new Hotel();
//		Hotel h2 = new Hotel();
//		Hotel h3 = new Hotel();
//		h1.setNome("a");
//		h1.criarQuartos(5);
//		h2.setNome("b");
//		h2.criarQuartos(6);
//		h3.setNome("c");
//		h3.criarQuartos(7);
//		dao.persist(h1);
//		dao.persist(h2);
//		dao.persist(h3);
//		dao.commit();
		
//		Hospede h11 = new Hospede();
//		Hospede h22 = new Hospede();
//		Hospede h33 = new Hospede();
//		h11.setNome("aa");
//		h2.setNome("bb");
//		h3.setNome("cc");
//		dao2.persist(h11);
//		dao2.persist(h22);
//		dao2.persist(h33);
//		dao.commit();
		
//		Hospedagem hp1 = new Hospedagem();
//		Hospedagem hp2 = new Hospedagem();
//		Hospedagem hp3 = new Hospedagem();
//		hp1.setHospede(h11);
//		hp2.setHospede(h22);
//		hp3.setHospede(h33);
//		hp1.setHotel(h1);
//		hp2.setHotel(h2);
//		hp3.setHotel(h3);
//		hp1.setQuarto(hp1.getHotel().getQuarto(1).getNumero());
//		hp2.setQuarto(hp2.getHotel().getQuarto(2));
//		hp3.setQuarto(hp3.getHotel().getQuarto(3));
//		try {
//			FachadaServicos s = new FachadaServicos();
//			hp1 = s.criarHospedagem(h11, h1, 1, "15/05/2012");
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
		
//		dao3.persist(hp1);
//		dao3.persist(hp2);
//		dao3.persist(hp3);
//		
//		dao.commit();
		
//		dao.remove(Container.getInstance().getHoteis().get(1));
//		dao.commit();
		
//		Hotel hX = dao.findById(2);
//		hX.setNome("hotel");
//		dao.merge(hX);
//		dao.commit();
		
//		System.out.println(Container.getInstance().getHoteis().get(0).getNome());
		
//		int i = 1;
//		for(Hotel h : new DAOHotel().findAll()){
//			System.out.println(h.getId() + " - " + h.getQuarto(++i));
//		}
//		for(Hospede h : new DAOHospede().findAll()){
//			System.out.println(h.getId() + " - " + h.getNome());
//		}
//		for(Hospedagem h : new DAOHospedagem().findAll()){
//			System.out.println(h.getId() + " - " + h.getQuarto());
//		}
		
//		Hospede hosp = new Hospede();
//		hosp.setCpf(CPFConverter.getAsObject("123.456.789-01"));
//		dao2.persist(hosp);
//		dao2.commit();
		
//		Hospede hosp = dao2.findByCpf(CPFConverter.getAsObject("123.456.789-01"));
		
//		System.out.println(CPFConverter.getAsString(hosp.getCpf()));
		
//		Hospedagem ho = dao3.findLast();
//		SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
//		System.out.println("Hospede: " + ho.getHospede().getNome() + "\nHotel: " + ho.getHotel().getNome() + "\nQuarto: " + ho.getQuarto() + "\n" + f.format(ho.getDataInicio().getTime()) + " até " + f.format(ho.getDataFim().getTime()) );
		
		try {
			FachadaServicos f = new FachadaServicos();
//			System.out.println("Hospede: " + dao2.findLast().getId());
//			System.out.println("Hotel: " + dao.findLast().getId());
//			System.out.println("Quarto: " + dao.findLast().getQuartos().get(0).getNumero());
//			Hospedagem hos = f.criarHospedagem(dao2.findLast().getId(), dao.findLast().getId(), dao.findLast().getQuartos().get(0).getNumero(), "13/05/2012", "15/05/2012", false);
//			
//			System.out.println(hos == null ? "nao cadastrou" : hos.toString());
			
			Hospedagem hos = dao3.findLast();
			int id = hos.getId();
			System.out.println("Id: " + id);
			System.out.println(hos.toString());
			f.cancelarReserva(id);
			hos = dao3.findById(id);
			System.out.println(hos == null ? "apagou" : hos.toString());
			
		} catch (RemoteException e) {
			e.printStackTrace();
		} finally {
			System.exit(0);
		}
		
		System.exit(0);
	}

}
